 
// 加载状态的类库
import { createStore, OptionState } from '../../lib/main'
import type { IStore, IStateCreateOption } from '../../lib/types/type'

import type {
  StateOnly,
  StateGA,
  Person
} from '../types/typs'

import { stateOnly } from './state-only'
import { stateAll } from './state-all'

/**
 * 统一注册全局状态
 */
export default createStore({
  // 定义状态，直接使用 reactive
  store: {
    stateOnly,
    stateAll,
    // stateOnlyFun,
    // stateGA,
    // stateRet: readonly(stateRet),
    // stateLog,
    // 纯 state
    user: {
      state: (): Person => {
        return {
          isLogin: false,
          name: 'jyk', //
          age: 19,
          info: {
            a1: '对象属性',
            b: {
              b1: '第三成'
            }
          },
          arr: [
            {
              c: {
                c1: '数组1'
              },
              d: {
                d1: '数组2'
              }
            }
          ],
          roles: ['1', '2']
        }
      },
      actions: {
        test(){
          this.age ++
        }
      }
    }
  },
  
  // 可以给全局状态设置初始状态，同步数据可以直接在上面设置，如果是异步数据，可以在这里设置。
  init (store: IStore) {
    console.log('初始化', store)
  }
})
